package oj;

public class Num572 {
    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
        if(root==null && subRoot==null){
            return true;
        }

        if(root==null || subRoot==null){
            return false;
        }
        //两棵树都不是空树，比较两棵树是否相同或者subroot是root的左子树或者subroot是root的右子树
        return isSameTree(root,subRoot) || isSubtree(root.left,subRoot) || isSubtree(root.right,subRoot);

    }
    public boolean isSameTree(TreeNode p, TreeNode q) {
        //如果两棵树都为空树
        if(p==null && q==null){
            return true;
        }
        //如果其中一棵为空树
        if(p==null || q==null){
            return false;
        }
        //两棵树都不为空比较根节点是否相同
        if(p.val!=q.val) {
            return false;
        }
        //两棵树都不为空树，且根节点相同
        return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);

    }
}
